/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.senac.tads.pi3.ex01;

import java.sql.Connection;
import br.senac.tads.pi3.comum.ConexaoBDJavaDB;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author ygor.yppessoa
 */
public class Exercicio01 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        ConexaoBDJavaDB conexao = new ConexaoBDJavaDB("AGENDADB");
        Connection conn = null;
        Statement stmt = null;
        
        imprimirDadosBD(conexao, stmt, conn);
        System.out.println("NOVO CADASTRO");
        cadastrarDadosBD(conexao, stmt, conn);
        imprimirDadosBD(conexao, stmt, conn);

    }

    public static void cadastrarDadosBD(ConexaoBDJavaDB conexao, Statement stmt, Connection conn) {
        Scanner in = new Scanner(System.in);
        System.out.println("Informe os dados.");
        System.out.print("Nome: ");
        String nome = in.nextLine();
        System.out.print("Data Nascimento(aaaa-mm-dd): ");
        String dtNasc = in.nextLine();
        System.out.print("Telefone: ");
        String telefone = in.nextLine();
        System.out.print("Email: ");
        String email = in.nextLine();
        System.err.println(nome+", "+dtNasc+", "+telefone+", "+email);
        try {
            conn = conexao.obterConexao();
            String comandoSQL = "INSERT INTO TB_PESSOAS"
                    + "(NM_PESSOA, DT_NASCIMENTO, VL_TELEFONE, VL_EMAIL) "
                    + "VALUES"
                    + "('" + nome + "','" + dtNasc + "','" + telefone + "','" + email + "')";

            stmt = conn.createStatement();
            stmt.executeUpdate(comandoSQL);
            System.out.println("Cadastro inserido com sucesso!");
            
        } catch (SQLException ex) {
            Logger.getLogger(Exercicio01.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Exercicio01.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException ex) {
                    Logger.getLogger(Exercicio01.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException ex) {
                    Logger.getLogger(Exercicio01.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }

    }

    public static void imprimirDadosBD(ConexaoBDJavaDB conexao, Statement stmt, Connection conn) {
        try {
            conn = conexao.obterConexao();
            String comandoSQL = "SELECT ID_PESSOA, NM_PESSOA, DT_NASCIMENTO, VL_TELEFONE, VL_EMAIL FROM TB_PESSOAS";

            stmt = conn.createStatement();
            ResultSet resultados = stmt.executeQuery(comandoSQL);

            while (resultados.next()) {
                long id = resultados.getLong("ID_PESSOA");
                String nm = resultados.getString("NM_PESSOA");
                Date dtNasc = resultados.getDate("DT_NASCIMENTO");
                String tel = resultados.getString("VL_TELEFONE");
                String email = resultados.getString("VL_EMAIL");

                System.out.println(id + ", " + nm + ", " + dtNasc + ", " + tel + ", " + email);
            }

        } catch (SQLException ex) {
            Logger.getLogger(Exercicio01.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Exercicio01.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException ex) {
                    Logger.getLogger(Exercicio01.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException ex) {
                    Logger.getLogger(Exercicio01.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }

    }
}
